需求: 并行处理任务
描述:
某email解析小程序, 点击parse之后会解析网页中或文件中的email地址.
如果文件较大或网速较慢, 响应会比较迟钝,出现假死现象, 因此在点击Parse时, 创建一个专门用于Parse的线程, 保证程序的流程运行.
具体解决方法:
1. 监听Parse Button:
buttonParse.addActionListener(onParse);
2.onParse函数
private ActionListener onParse = new ActionListener() { public void actionPerformed(ActionEvent e){ Thread threadParseEmail = new Thread(){ @Override public void run() { // TODO Auto-generated method stub parseEmail(); } }; threadParseEmail.setName("ParseEmailThread"); threadParseEmail.start(); log.debug("Parse clicked"); };
3.parseEmail函数进行具体的处理.
private void parseEmail() { log.info("正在解析"); ...... }
log信息:
[AWT-EventQueue-0] DEBUG com.insprise.mail.parser.SwingUI – Parse clicked
[ParseEmailThread] INFO com.insprise.mail.parser.SwingUI – 正在解析
可见ParseEmail使用单独的进行进行操作, 在解析大文件时 UI不会出现假死状态.
Eclipse 正则表达式书写测试插件 – 基于java.util.regex <->
// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.